home *** CD-ROM | disk | FTP | other *** search
-
-
-
- bbbbccccaaaannnnppppuuuutttt((((DDDD3333)))) bbbbccccaaaannnnppppuuuutttt((((DDDD3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt - test for flow control in a specified priority band
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
- _iiii_nnnn_tttt _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt_((((_qqqq_uuuu_eeee_uuuu_eeee______tttt _****_q_,,,, _uuuu_cccc_hhhh_aaaa_rrrr______tttt _p_r_i_))))_;;;;
-
- AAAArrrrgggguuuummmmeeeennnnttttssss
- _q Pointer to the message queue.
-
- _p_r_i Message priority.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- Like the _cccc_aaaa_nnnn_pppp_uuuu_tttt(D3) function, _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt searches through the stream
- (starting at _q) until it finds a queue containing a service routine, or
- until it reaches the end of the stream. If found, the queue containing
- the service routine is tested to see if a message of priority _p_r_i can be
- enqueued. If the band is full, _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt marks the queue to automatically
- back-enable the caller's service routine when the amount of data in
- messages on the queue has reached its low water mark.
-
- RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
- _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt returns 1 if a message of priority _p_r_i can be sent in the stream,
- or 0 if the priority band is flow-controlled. If _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt reaches the end
- of the stream without finding a queue with a service routine, then it
- returns 1.
-
- UUUUSSSSAAAAGGGGEEEE
- The driver is responsible for both testing a queue with _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt and
- refraining from placing a message on the queue if _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt fails.
-
- It is possible because of race conditions to test for room using _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt
- and get an indication that there is room for a message, and then have the
- queue fill up before subsequently enqueuing the message, causing a
- violation of flow control. This is not a problem, since the violation of
- flow control in this case is bounded.
-
- If _p_r_i is 0, the _bbbb_cccc_aaaa_nnnn_pppp_uuuu_tttt call is equivalent to a call to _cccc_aaaa_nnnn_pppp_uuuu_tttt.
-
- LLLLeeeevvvveeeellll
- Base or Interrupt.
-
- SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn CCCCoooonnnnssssttttrrrraaaaiiiinnnnttttssss
- Does not sleep.
-
- Driver-defined basic locks, read/write locks, and sleep locks may be held
- across calls to this function.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- bbbbccccaaaannnnppppuuuutttt((((DDDD3333)))) bbbbccccaaaannnnppppuuuutttt((((DDDD3333))))
-
-
-
- RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
- _cccc_aaaa_nnnn_pppp_uuuu_tttt(D3), _pppp_uuuu_tttt_bbbb_qqqq(D3)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-